home *** CD-ROM | disk | FTP | other *** search
- /*
- File: HshTbTyp.h
-
- Contains: Types for AEM's hash table functions
-
- Owned by: Eric House
-
- Copyright: © 1993 - 1995 by Apple Computer, Inc., all rights reserved.
-
- Change History (most recent first):
-
- <4> 4/24/95 eeh 1212343: (forgot to remove the 5 $s in the
- comment)
- <3> 4/24/95 eeh 1212343: remove ODTypes.h
- <2> 10/28/94 SS #1196346 - missing includes
- <1> 8/11/94 eeh first checked in
-
- To Do:
- */
-
- #ifndef _HSHTBTYP_
- #define _HSHTBTYP_
-
- #ifndef __TYPES__
- #include "Types.h"
- #endif
-
- //==============================================================================
- // Scalar Types
- //==============================================================================
-
- typedef void* KeyPtr;
- typedef void* HEntryPtr;
- typedef KeyPtr ODKeyPtr;
-
- typedef Handle HashTable;
- typedef Handle HHand ;
- //typedef ProcPtr HashProc ; LibraryManager.h doesn't like this
- struct _MemProcBlock {
- ProcPtr DerefProc ;
- ProcPtr NewProc ;
- ProcPtr GrowProc ;
- ProcPtr DisposeProc ;
- } ;
- typedef struct _MemProcBlock MemProcBlock, *OSLMemProcs;
-
-
- //==============================================================================
- // Functions
- //==============================================================================
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- extern pascal OSErr AENewHashTable(long NumEntries, short KeySize,
- short ValueSize, MemProcBlock* MemHooks, Boolean SysHeap,
- HashTable* Table)
- THREEWORDINLINE(0x303C, 0x092E, 0xA816);
-
- extern pascal OSErr AEDisposeHashTable(HashTable* Table, MemProcBlock* MemHooks)
- THREEWORDINLINE(0x303C, 0x042F, 0xA816);
-
- extern pascal OSErr AEAddKeyEntry(HHand Table, MemProcBlock* MemHooks, KeyPtr Key,
- HEntryPtr Value)
- THREEWORDINLINE(0x303C, 0x0830, 0xA816);
-
- extern pascal OSErr AEReplaceEntry(HashTable Table, MemProcBlock* MemHooks, KeyPtr Key,
- HEntryPtr Value)
- THREEWORDINLINE(0x303C, 0x0831, 0xA816);
-
- extern pascal OSErr AERemoveKeyEntry(HashTable Table, MemProcBlock* MemHooks, KeyPtr Key)
- THREEWORDINLINE(0x303C, 0x0632, 0xA816);
-
- extern pascal OSErr AEGetKeyValue(HashTable Table, MemProcBlock* MemHooks, KeyPtr Key,
- HEntryPtr Value)
- THREEWORDINLINE(0x303C, 0x0833, 0xA816);
-
- extern pascal OSErr AEGetIndexedEntry(HashTable Table, MemProcBlock* MemHooks, long index,
- KeyPtr Key, HEntryPtr Value)
- THREEWORDINLINE(0x303C, 0x0A34, 0xA816);
-
- #ifdef __cplusplus
- }
- #endif
-
- #endif